#include <stdio.h>
#include <stdlib.h>
typedef struct l{
    int data[100];
    int max;
} l;
l *init(){
    printf("初始化一个顺序结构\n");
    l *l1=malloc(sizeof(l));
    l1->max=0;
    return l1;
}
void insert(l *l){
    printf("输入数值。0代表结束");
    int n;
    scanf("%d",&n);
    while(n!=0)
    {
        l->data[l->max]=n;
        l->max++;
         printf("输入数值。0代表结束");
        scanf("%d",&n);
    }
    
}
void selectall(l *l){
    for(int i=0;i<l->max;i++){
        printf("%d\n",l->data[i]);
    }
}
int find(l l,int mydata){
    int index=-1;
    for(int i=0;i<l.max;i++){
        if(l.data[i]==mydata){
            index=i;
            break;
        }
    }
    if(index==-1){
        printf("没有%d这个元素\n",mydata);
    }
    else{
        printf("%d这个元素在%d的位置上",mydata,index);
    }
    return index;
}
void deletebyindex(l *l,int index){
    if(index>l->max-1){
        printf("%d的位置不合适\n",index);
    }
    else{
        for(int i=index;i<l->max;i++){
            l->data[i]=l->data[i+1];
        }
        l->max--;
    }
}
void deletebydata(l *l,int data){
    int index=find(*l,data);
    if(index==-1){
        printf("不存在%d这个元素，不能删除\n",data);
    }
    else{
        for(int i=index;i<l->max;i++){
            l->data[i]=l->data[i+1];
        }
        l->max--;
    }
}
void update(l *l,int data,int newdata){
    int index=find(*l,data);
    if (index==-1)
    {
        printf("不存在这个元素");
    }
    else{
        l->data[index]=newdata;
    }
    
}
int main(int argc, char const *argv[])
{
    
    l *l=init();
    init(l);
    insert(l);
    selectall(l);
    int data;
    printf("输入一个想要删除的数");
    scanf("%d",&data);
    deletebydata(l,data);
    selectall(l);
    return 0;
}
